package com.lanchetech.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 提现记录
 */
@ApiModel(value = "com-lanchetech-entity-Withdraw")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Withdraw implements Serializable {
    @ExcelProperty("提现编号")
    @ApiModelProperty(value="null")
    private Long id;

    /**
    * 用户id
    */
    @ExcelProperty("用户编号")
    @ApiModelProperty(value="用户id")
    private Long userId;

    /**
    * 提现账户
    */
    @ExcelProperty("提现账户")
    @ApiModelProperty(value="提现账户")
    private String account;

    /**
    * 提现类型，WECHAT 提现到微信零钱 ALIPAY 支付宝转账 BANK 银行卡(目前只支持自动提现到微信零钱)
    */
    @ExcelIgnore
    @ApiModelProperty(value="提现类型，WECHAT 提现到微信零钱 ALIPAY 支付宝转账 BANK 银行卡(目前只支持自动提现到微信零钱)")
    private String type;

    /**
    * 提现金额
    */
    @ExcelProperty("提现金额")
    @ApiModelProperty(value="提现金额")
    private BigDecimal amount;

    /**
    * 提现状态 0 失败, 1 成功, 2 待审核
    */
    @ExcelProperty(value = "提现状态", converter = WithdrawStatusConverter.class)
    @ApiModelProperty(value="提现状态 0 失败, 1 成功, 2 待审核")
    private Integer status;

    /**
    * 操作管理员
    */
    @ExcelProperty("操作管理员")
    @ApiModelProperty(value="操作管理员")
    private String admin;

    /**
    * 创建时间
    */
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    private Date createdAt;

    /**
    * 更新时间
    */
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("更新时间")
    @ApiModelProperty(value="更新时间")
    private Date updatedAt;

    /**
     * 提现后的余额
     */
    @ExcelProperty("提现后的余额")
    @ApiModelProperty(value = "提现后的余额")
    private BigDecimal remainingAmount;

    /**
     * 用户商家厂家类型 0 用户 1 商家 2 厂家
     */
    @ExcelProperty("用户商家厂家类型 0 用户 1 门店 2 商家")
    @ApiModelProperty(value = "用户商家厂家类型 0 用户 1 门店 2 商家")
    private Byte businessType;

    /**
     * 商家编号
     */
    @ExcelProperty("商家编号")
    @ApiModelProperty(value = "商家编号")
    private Long shopId;

    /**
     * 实发金额
     */
    @ExcelProperty("实发金额")
    @ApiModelProperty(value = "实发金额")
    private BigDecimal finalAmount;

    /**
     * 税率
     */
    @ExcelProperty("税率")
    @ApiModelProperty(value = "税率")
    private BigDecimal taxRate;

    /**
     * 服务费率
     */
    @ExcelProperty("服务费率")
    @ApiModelProperty(value = "服务费率")
    private BigDecimal serviceRate;

    /**
     * 税额
     */
    @ExcelProperty("税额")
    @ApiModelProperty(value = "税额")
    private BigDecimal tax;

    /**
     * 服务费额
     */
    @ExcelProperty("服务费额")
    @ApiModelProperty(value = "服务费额")
    private BigDecimal service;

    private static final long serialVersionUID = 1L;
}